home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / MSD-DU15.ARC / DIR MANIPULATOR (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  3.5 KB  |  113 lines

  1. 40 PRINT"[147]"TAB(9)"[144]DIRECTORY MANIPULATOR[159]"
  2. 50 PRINTTAB(5)"INSERT DISKETTE TO MANIPULATE":GOSUB1430
  3. 60 DIMF$(144):FORI=1TO11:FL$=FL$+CHR$(0):NEXT:TY$=CHR$(131)+CHR$(18)+CHR$(0)
  4. 70 DIMS%(18):S%(1)=1:FORI=1TO17
  5. 80 IFI=6THENS%(I+1)=2:NEXT
  6. 90 IFI=12THENS%(I+1)=3:NEXT
  7. 100 S%(I+1)=S%(I)+3:NEXT
  8. 110 T=18:S=1:N=1:OK=0
  9. 120 SP$="":FORI=1TO16:SP$=SP$+CHR$(160):NEXT
  10. 160 OPEN15,8,15,"I0":GOSUB1550
  11. 170 PRINTTAB(12)" DISK UNIT OK !"
  12. 210 OPEN2,8,2,"#"
  13. 220 PRINT#15,"U1";2;0;T;S
  14. 230 GOSUB1550
  15. 240 GET#2,T$,S$
  16. 250 T=ASC(T$+CHR$(0)):S=ASC(S$+CHR$(0))
  17. 260 FORI=1TO8
  18. 270 F$="":FORX=1TO30
  19. 280 GET#2,B$:B=ASC(B$+CHR$(0)):IFX=1THENA=B
  20. 290 IFX=4THENC=B
  21. 300 F$=F$+CHR$(B):NEXTX
  22. 310 IFA<>0OR(A=0ANDC=160)THENF$(N)=F$:N=N+1
  23. 320 GET#2,B$,B$:NEXTI
  24. 330 IFT<>0THEN220
  25. 370 Z=1:OD=0:P1=20:PG=P1:X=INT((N-1)/2)+1:IF(N-1)-(2*(X-1))=1THENX=X+1:OD=1
  26. 380 XX=X-1:PC=INT(XX/PG):IF(XX/PG)-PC<>0THENPC=PC+1
  27. 390 IFXX>PGTHENX=PG+1
  28. 400 FORI=1TOXX:PRINT"[144]"RIGHT$(STR$(Z),2)"[159]";MID$(F$(Z),4,16):Z=Z+1
  29. 410 IFOD=0OR(OD=1AND2*XX<>X)THENPRINTTAB(19)"[145][144]"RIGHT$(STR$(X),2)"[159]";MID$(F$(X),4,16):X=X+1
  30. 420 IFINT(I/PG)=1ANDPC>=2THENPG=PG+P1:GOSUB1430:PC=PC-1:GOTO440
  31. 430 GOTO460
  32. 440 Z=X:IFPC=>2THENX=Z+P1
  33. 450 IFPC=1THENX=INT(((2*XX)-(2*I))/2)+Z
  34. 460 NEXTI
  35. 470 CLOSE15:CLOSE2
  36. 510 PRINT:PRINT"DIRECTORY OK (Y/N)";:INPUT"N[157][157][157]";OK$
  37. 520 IFOK$<>"Y"ANDOK$<>"N"THENPRINT"[145][145][145]":GOTO510
  38. 530 IFOK$="Y"ANDOK=0THENGOTO1660
  39. 540 IFOK$="Y"ANDOK=1THENGOTO730
  40. 580 PRINT"SELECT DIRECTORY MANIPULATION COMMAND"
  41. 590 GETCM$:IFCM$=""THEN590
  42. 600 IFCM$="[133]"THENPRINT"RE-LIST DIRECTORY":GOTO370
  43. 610 IFCM$="H"THENGOSUB1340:GOTO370
  44. 620 OK=1:IFCM$="[137]"THENPRINT"ALPHABATIZE DIRECTORY":GOSUB920:GOTO370
  45. 630 IFCM$="[134]"THENPRINT"INSERT BLANK ENTRY":GOSUB1010:GOTO370
  46. 640 IFCM$="[138]"THENPRINT"DELETE BLANK ENTRIES":GOSUB1050:GOTO370
  47. 650 IFCM$="[135]"THENPRINT"INSERT-----[146] ENTRY":GOSUB1130:GOTO370
  48. 660 IFCM$="[139]"THENPRINT"INSERT 'REMARK' ENTRY":GOSUB1170:GOTO370
  49. 670 IFCM$="[136]"THENPRINT"SWAP DIRECTORY ENTRIES":GOSUB1230:GOTO370
  50. 680 IFCM$="[140]"THENPRINT"DELETE DIRECTORY ENTRY":GOSUB1280:GOTO370
  51. 685 IFCM$="[137]"THENSYS64738
  52. 690 PRINT"[147]":GOTO580
  53. 730 PRINT"[147] WRITING NEW DIRECTORY...PLEASE WAIT![146]"
  54. 740 F$="":FORI=1TO32:F$=F$+CHR$(0):NEXTI
  55. 750 OPEN15,8,15,"I0":GOSUB1550
  56. 760 PRINTTAB(12)" DISK UNIT OK !"
  57. 770 OPEN2,8,2,"#":X=INT((N-1)/8):XX=0:IF((N-1)/8)-X<>0THENX=X+1
  58. 780 FORI=1TOX:PRINT#15,"B-P:";2;0
  59. 790 T=18:IFI=XTHENT=0
  60. 800 PRINT#2,CHR$(T);CHR$(S%(I+1));
  61. 810 FORZ=1TO8:XX=XX+1
  62. 820 IFXX=>NTHENPRINT#2,F$;:GOTO850
  63. 830 PRINT#2,F$(XX);
  64. 840 IFZ<>8ANDXX<>(N-1)THENPRINT#2,"SG";
  65. 850 NEXTZ
  66. 860 PRINT#15,"U2:";2;0;18;S%(I)
  67. 870 PRINT"WRITING TRACK 18 SECTOR"STR$(S%(I))
  68. 880 NEXTI:CLOSE2:CLOSE15:GOTO1660
  69. 920 X=N
  70. 930 X=INT(X/2):IFX=0THENRETURN
  71. 940 FORI=1TO((N-1)-X):Y=I
  72. 950 Z=Y+X:IFMID$(F$(Y),4,16)<=MID$(F$(Z),4,16)THEN970
  73. 960 FF$=F$(Y):F$(Y)=F$(Z):F$(Z)=FF$:Y=Y-X:IFY>0THEN950
  74. 970 NEXT:GOTO930
  75. 1010 GOSUB1490:F$(BL)=CHR$(0)+CHR$(0)+CHR$(0)+SP$+FL$:RETURN
  76. 1050 FORI=1TON-1:IFASC(F$(I))=0THEN1070
  77. 1060 NEXT:RETURN
  78. 1070 FORX=BLTON-1
  79. 1080 IFBL<N-1THENF$(X)=F$(X+1)
  80. 1090 NEXT:N=N-1:GOTO1050
  81. 1130 GOSUB1490:F$(BL)=TY$+"----------------"+FL$:RETURN
  82. 1170 GOSUB1490:PRINT"ENTER REMARK:";:INPUTRM$:IFLEN(RM$)>16THEN1170
  83. 1180 IFLEN(RM$)<16THENFORI=1TO(16-LEN(RM$)):RM$=RM$+CHR$(160):NEXT
  84. 1190 F$(BL)=TY$+RM$+FL$:RETURN
  85. 1230 PRINT"1ST ";:GOSUB1490:A=BL:PRINT"2ND ";:GOSUB1490:F$(B)=F$(A):F$(A)=F$(BL)
  86. 1240 F$(BL)=F$(B):RETURN
  87. 1280 GOSUB1490:FORX=BLTON-1
  88. 1290 IFBL<N-1THENF$(X)=F$(X+1)
  89. 1300 NEXT:N=N-1:RETURN
  90. 1340 PRINT"[147]   DIRECTORY MANIPULATOR HELP MENU"
  91. 1350 PRINT"   F1 -> RE-LIST DIRECTORY":PRINT"   F2 -> ALPHABATIZE DIRECTORY"
  92. 1360 PRINT"   F3 -> INSERT BLANK ENTRY":PRINT"   F4 -> DELETE BLANK ENTRIES"
  93. 1370 PRINT"   F5 -> INSERT -----[146] ENTRY":PRINT"   F6 -> INSERT 'REMARK' ENTRY"
  94. 1380 PRINT"   F7 -> SWAP DIRECTORY ENTRIES":PRINT"   F8 -> DELETE DIRECTORY ENTRY"
  95. 1385 PRINT"***DELETED ENTRY IS NON-RECOVERABLE***"
  96. 1390 GOSUB1430:RETURN
  97. 1430 PRINT:PRINTTAB(13)"HIT ANY KEY!!!"
  98. 1440 GETCK$:IFCK$=""THEN1440
  99. 1450 RETURN
  100. 1490 PRINT"LOCATION OF  ENTRY:0[157][157][157]";:INPUTBL:IFBL>N-1ORBL<1THENPRINT"[145][145]":GOTO1490
  101. 1500 IFCM$="[136]"ORCM$="[140]"THEN RETURN
  102. 1510 N=N+1:FORI=N-1TOBL+1STEP-1:F$(I)=F$(I-1):NEXT:RETURN
  103. 1550 INPUT#15,EN,EM$,ET,ES:IFEN<>0THENGOTO1600
  104. 1560 RETURN
  105. 1600 PRINT"[147]"TAB(12)"DISK UNIT ERROR!"
  106. 1610 PRINT"ERROR # -"EN"[157]; TRACK -"ET"[157]; SECTOR -"SE
  107. 1620 PRINT"ERROR MESSAGE - "EM$:END
  108. 1660 PRINT"[147]MANIPULATE ANOTHER DISKETTE (Y/N)";:INPUT"N[157][157][157]";AN$
  109. 1670 IFAN$<>"Y"ANDAN$<>"N"THEN1660
  110. 1680 PRINT"DISKETTE BEING VALIDATED":OPEN15,8,15:PRINT#15,"V":PRINT#15,"I":CLOSE15
  111. 1690 IFAN$="Y"THENRUN
  112. 1700 END
  113.